Computer systems have one or more processors that manipulate and control the flow of data by executing instructions. To provide more powerful computer systems, processor designers strive to continually increase the operating speed or frequency of the processor. As processor speed increases, the power consumed by the processor tends to increase as well resulting in higher temperatures within the processor. Moreover, increases in processor frequency and temperature can result in unreliable performance and cause errors to occur within the processor. Various techniques have been developed in an effort to optimally control processor temperature and frequency.
For example, some processors include an on-chip controller that adjusts the power supplied to the processor and the operating frequency of the processor based on a measured temperature of the processor. Thus, the processor can run at a higher operating frequency and, if the processor begins to overheat, the controller can reduce the processor's power and frequency until the processor's temperature falls back into a normal operating range. Therefore, the processor can achieve better performance during periods when its temperature is relatively low yet avoid at least some heat-related errors by throttling back power and frequency when the temperature increases above a specified threshold.
Moreover, the operating temperature and frequency of a processor can change while the processor is running. To ensure robustness, extensive testing of the processor is required. For example, before a processor manufacturer releases a product to the public, the manufacturer usually tests the processor at many different operating points to ensure that it operates correctly at the different operating points. As used herein, an “operating point” of a processor is defined by an operating frequency and temperature. Thus, if a processor is tested multiple times at the same operating point, then the processor's operating frequency and temperature are the same for each of the tests. However, if a processor is tested at different operating points for each of a set of tests, then the processor has a different operating temperature or frequency for each of the tests.
To test a processor at multiple operating points, the processor is set to a first operating point by controlling a power signal and a clock signal provided to the processor such that the processor operates of a first temperature and a first frequency. Then, a test code sequence is run on the processor. The running of the test code sequence generates data that is stored and later analyzed to determine whether the processor correctly executed the test code sequence. If the processor correctly executed the test code sequence, then the processor is deemed to have passed the test for the first operating point. However, if an error occurred during the execution of the text code sequence, then the processor is deemed to have failed the test for the first operating point. In such an event, the processor manufacturer may attempt to debug the source of the error.
After performing the test of the processor at the first operating point, the processor is set to a second operating point by adjusting the power signal and/or the clock signal such that the processor operates at another temperature and/or frequency. A test code sequence is then executed by the processor at the second operating point, and the results of such execution are analyzed to determine whether the processor passed or failed the test of the second operating point.
To set the processor to different operating points, external equipment is often used to provide the power signal and the clock signal that control the operating temperature and frequency of the processor. In this regard, an external power source is temporarily interfaced with the processor via an input/output (I/O) interface, which is coupled to the processor through a system bus. By supplying power to the processor during testing, the external power source is able to control the processor's operating power. Further, an external signal generator is also temporarily interfaced with the processor via another I/O interface, which is coupled to the processor through the system bus. By supplying a clock signal to the processor during testing, the external signal generator is able to control the processor's operating frequency. In addition, an external data analyzer is temporarily interfaced with the processor via yet another I/O interface that is coupled to the processor through the system bus, and the data analyzer receives data indicative of the execution results for the test code sequences run for the different operating point tests. The external data analyzer typically determines and logs the pass/fail status for each operating point.
It takes a finite amount of time, typically several seconds, for the external components to set the processor to a given operating point and to log the results of the test at such operating point. Further, many different operating points are tested to ensure sufficient robustness of the processor, and the time required to test all of the operating points can be significant. Indeed, even with a fully automated testing system, it can take several hours to test a desired number of operating points. Further, during the debugging process, it is often necessary to re-run the operating point tests many times to ensure that the detected bugs have been adequately addressed. Unfortunately, the testing and debugging of the processor can significantly delay the introduction of the processor to the consuming public.